package com.haixinga.commbiz.commons.constants;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author terrfly
 * @Date 2019/11/16 15:09
 * @Description Constants 常量对象
 **/
public class CS {

    /**
     * 保存文件的 文件名分隔符 ： UUID_u_文件原始文件名.zip
     */
    public static final String SAVE_FILENAME_SEPARATOR = "_u_";

    /**
     * 状态 - 删除/无效
     */
    public static final int STATE_DELETE = 0;

    /**
     * 状态  - 有效
     */
    public static final int STATE_VALID = 1;

    public static final int YES = 1;
    public static final int NO = 0;


    //存放session- key常量
    public interface SessionKey {
        String USER = "userInfo";
    }


    public static final long TOKEN_TIME = 60 * 60 * 2; //单位：s,  两小时


    //access_token 名称
    public static final String ACCESS_TOKEN_NAME = "iToken";

    /** reqContext对象中的key: 当前用户信息 */
    public static final String REQ_CONTEXT_KEY_USERINFO = "REQ_CONTEXT_KEY_USERINFO";



    /** 缓存key: 当前用户所有用户的token集合  example: tokenList_1001 */
    public static final String CACHE_KEY_TOKEN_LIST = "tokenList_%s";
    public static String getCacheKeyTokenList(Integer uid){
        return String.format(CACHE_KEY_TOKEN_LIST, uid);
    }


    /** 修改手机号 redis保存的 手机验证码 **/
    public static final String CACHE_KEY_CUST_MODIFY_MOBILE = "cust_modify_mobile_%s_%s";
    public static String getCacheKeyCustModifyMobile(Integer custId, String mobile){
        return String.format(CACHE_KEY_CUST_MODIFY_MOBILE, custId, mobile);
    }


    /** 用户类型 **/
    public interface USER_TYPE{

        int MCH_MEMBER = 1; //商家会员
        int MCH_MANAGER = 2; //商家管理者
        int MGR_MANAGER = 3; //运营平台管理者
    }

    /** 登录认证类型 **/
    public interface AUTH_TYPE{

        int LOGIN_USER_NAME = 1; //登录用户名
        int TELPHONE = 2; //手机号
        int EMAIL = 3; //邮箱

        int WX_UNION_ID = 10; //微信unionId
        int WX_MINI = 11; //微信小程序
        int WX_MP = 12; //微信公众号

        int QQ = 20; //QQ
    }

    /** api接口 http状态码  **/
    public interface API_HTTP_STATUS{
        int NO_LOGIN = 401;  //未登录
        int PERMISSION_DENIED = 403;  //权限不足
    }


    /**
     * 性别 1- 男， 2-女
     */
    public static final Integer SEX_UNKNOWN = 0;
    public static final Integer SEX_MALE = 1;
    public static final Integer SEX_FEMALE = 2;

    public static Map<Long, Object> SYS_AREA_ALL_MAP = null;


    public interface SYS_TYPE{

        int MGR = 10; //运营平台
        int MEMBER = 20; //用户端
        Map<Integer, String> SYS_TYPE_MAP = new HashMap<>();
    }
    static {
        SYS_TYPE.SYS_TYPE_MAP.put(SYS_TYPE.MGR, "运营平台");
        SYS_TYPE.SYS_TYPE_MAP.put(SYS_TYPE.MEMBER, "用户端");
    }

    //菜单类型
    public interface ENT_TYPE{

        Integer LEFT_MENU = 1;  //左侧显示菜单
        Integer OTHER_MENU = 2;  //其他菜单
        Integer PAGE_OR_BTN = 3;  //页面 or 按钮
    }

}
